
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import sonido.Sonido;
public class Botones extends JFrame {

    JPanel panel;
    JPanel panel2;
    private int barcos = 2;
    private int aviones = 2;
    private int tanques = 2;
    int dimension_tabla = 10;
    int numero_labes = 10;
    boolean btnCentron_arriba = true;
    boolean btnCentron_izq = true;
    boolean btnCentron_der = true;
    Sonido sonido = new Sonido("C:\\Users\\Die-Go15\\Desktop\\pry\\Proyecto2_1.3\\src\\sonido\\click.wav");

    public Botones() {
        
        panel2 = (JPanel) this.getContentPane();
        //panel2=.setLayout(new BorderLayout());
        //el panel principal
                
        panel = (JPanel) this.getContentPane();
        panel.setLayout(new GridLayout(dimension_tabla, dimension_tabla + 1));
        ArrayList<Boton> btnCentrones = new ArrayList<>();
        final ArrayList<Label> labels = new ArrayList<>();
        labels.add(new Label("PUNTAJE", 0));
        labels.add(new Label("    0  ", 0));
        for (int i = 1, cont = 1; i < numero_labes - 1; i++) {
            Label lbl = new Label("", 3);
            if (i % 2 != 0) {
                lbl.setIcono("imagenes/arma"+cont+".gif");
                switch (cont) {
                    case 2:
                        lbl.cantidad_imagenes = 2;
                        break;
                    case 4:
                        lbl.cantidad_imagenes = 3;
                        break;
                    case 6:
                        lbl.cantidad_imagenes = 4;
                        break;
                    case 8:
                        lbl.cantidad_imagenes = 1;
                        break;
                }
                lbl.getEvent();
                cont++;
            } else {
                lbl.setTexto("    5 ");
            }
            labels.add(lbl);
        }
        for (int i = -10; i < (dimension_tabla * dimension_tabla + 1); i++) {
            if (i % dimension_tabla == 0) {
                btnCentron_izq = false;
            }
            if (i < dimension_tabla) {
                btnCentron_arriba = false;
            }
            if (((i + 1) % dimension_tabla) == 0) {
                btnCentron_der = false;
            }
            btnCentrones.add(new Boton(btnCentron_arriba, btnCentron_izq, btnCentron_der, i));
            btnCentron_arriba = btnCentron_der = btnCentron_izq = true;
        }
        for (int i = 0, cont_btns = 10; i < (dimension_tabla * dimension_tabla + numero_labes + 1); i++) {
            if ((i % (dimension_tabla + 1)) == 0 && i < (dimension_tabla * dimension_tabla + numero_labes)) {
                int x = i / (dimension_tabla + 1);
                Label lb = (Label) labels.get(x);
                panel.add(lb.label);
            } else if (i < (dimension_tabla * dimension_tabla + numero_labes)) {
                final Boton btnCentro = (Boton) btnCentrones.get(cont_btns);
                final Boton btnArriba = (Boton) btnCentrones.get(cont_btns - 10);
                final Boton btnIzq = (Boton) btnCentrones.get(cont_btns - 1);
                final Boton btnDer = (Boton) btnCentrones.get(cont_btns + 1);
                System.out.println(cont_btns);
                MouseListener ml = new MouseListener() {
                    @Override
                    public void mouseClicked(MouseEvent e) {

                        System.out.println(btnCentro.indice);
                        if ((boolean) labels.get(2).presionado == true && btnCentro.clickeado == false && btnIzq.clickeado == false && tanques > 0 && btnCentro.Izq) {
                            btnCentro.boton.setIcon(new ImageIcon(getClass().getResource("imagenes/arma1_der.png")));
                            btnIzq.boton.setIcon(new ImageIcon(getClass().getResource("imagenes/arma1_izq.png")));
                            btnIzq.clickeado = true;
                            btnCentro.clickeado = true;
                            try {
//                                sonido= new Sonido("C:\\Users\\Die-Go15\\Desktop\\pry\\Proyecto2_1.3\\src\\sonido\\click.wav");
                                sonido.reproducir();
                            } catch (FileNotFoundException ex) {
                                System.out.println("" + ex.getMessage());
                            } catch (IOException ex) {
                                System.out.println("" + ex.getMessage());
                            }
                            tanques--;

                        }
                        if ((boolean) labels.get(4).presionado == true && btnCentro.clickeado == false && btnIzq.clickeado == false && btnDer.clickeado == false && aviones > 0 && btnCentro.Izq && btnCentro.Der) {
                            btnCentro.boton.setIcon(new ImageIcon(getClass().getResource("imagenes/arma2_centro.png")));
                            btnIzq.boton.setIcon(new ImageIcon(getClass().getResource("imagenes/arma2_izq.png")));
                            btnDer.boton.setIcon(new ImageIcon(getClass().getResource("imagenes/arma2_der.png")));
                            btnDer.clickeado = true;
                            btnIzq.clickeado = true;
                            btnCentro.clickeado = true;
                            try {
                                //sonido= new Sonido("C:\\Users\\Die-Go15\\Desktop\\pry\\Proyecto2_1.3\\src\\sonido\\click.wav");
                                sonido.reproducir();
                            } catch (FileNotFoundException ex) {
                                System.out.println("" + ex.getMessage());
                            } catch (IOException ex) {
                                System.out.println("" + ex.getMessage());
                            }
                            aviones--;
                        }
                        if ((boolean) labels.get(6).presionado == true && barcos > 0 && btnArriba.clickeado == false && btnIzq.clickeado == false && btnCentro.clickeado == false && btnDer.clickeado == false && btnCentro.Arriba && btnCentro.Der && btnCentro.Izq) {
                            btnCentro.boton.setIcon(new ImageIcon(getClass().getResource("imagenes/arma3_centro.png")));
                            btnIzq.boton.setIcon(new ImageIcon(getClass().getResource("imagenes/arma3_izq.png")));
                            btnArriba.boton.setIcon(new ImageIcon(getClass().getResource("imagenes/arma3_arriba.png")));
                            btnDer.boton.setIcon(new ImageIcon(getClass().getResource("imagenes/arma3_der.png")));
                            btnCentro.clickeado = true;
                            btnArriba.clickeado = true;
                            btnIzq.clickeado = true;
                            btnDer.clickeado = true;
                            try {
                                //sonido= new Sonido("C:\\Users\\Die-Go15\\Desktop\\pry\\Proyecto2_1.3\\src\\sonido\\click.wav");
                                sonido.reproducir();
                            } catch (FileNotFoundException ex) {
                                System.out.println("" + ex.getMessage());
                            } catch (IOException ex) {
                                System.out.println("" + ex.getMessage());
                            }
                            barcos--;
                        }
                        if ((boolean) labels.get(8).presionado == true) {
                            btnCentro.boton.setIcon(new ImageIcon(getClass().getResource("imagenes/arma4.png")));
                            btnCentro.clickeado = true;
                        }
                        for (Label label : labels) {
                            label.presionado = false;
                        }
                    }

                    @Override
                    public void mousePressed(MouseEvent e) {
                    }

                    @Override
                    public void mouseReleased(MouseEvent e) {
                    }

                    @Override
                    public void mouseEntered(MouseEvent e) {
                        if (btnCentro.clickeado == false) {
                            if ((boolean) labels.get(2).presionado == true && tanques > 0 && btnCentro.Izq && btnIzq.clickeado == false) {
                                btnCentro.boton.setIcon(new ImageIcon(getClass().getResource("imagenes/arma1_der.png")));
                                btnIzq.boton.setIcon(new ImageIcon(getClass().getResource("imagenes/arma1_izq.png")));
                            }
                            if ((boolean) labels.get(4).presionado == true && aviones > 0 && btnCentro.Izq && btnCentro.Der && btnIzq.clickeado == false && btnDer.clickeado == false) {
                                btnCentro.boton.setIcon(new ImageIcon(getClass().getResource("imagenes/arma2_centro.png")));
                                btnIzq.boton.setIcon(new ImageIcon(getClass().getResource("imagenes/arma2_izq.png")));
                                btnDer.boton.setIcon(new ImageIcon(getClass().getResource("imagenes/arma2_der.png")));
                            }
                            if ((boolean) labels.get(6).presionado == true && barcos > 0 && btnArriba.clickeado == false && btnIzq.clickeado == false && btnCentro.clickeado == false && btnDer.clickeado == false && btnCentro.Izq && btnCentro.Der && btnCentro.Arriba) {
                                btnCentro.boton.setIcon(new ImageIcon(getClass().getResource("imagenes/arma3_centro.png")));
                                btnIzq.boton.setIcon(new ImageIcon(getClass().getResource("imagenes/arma3_izq.png")));
                                btnArriba.boton.setIcon(new ImageIcon(getClass().getResource("imagenes/arma3_arriba.png")));
                                btnDer.boton.setIcon(new ImageIcon(getClass().getResource("imagenes/arma3_der.png")));
                            }
                            if ((boolean) labels.get(8).presionado == true && btnCentro.clickeado == false) {
                                btnCentro.boton.setIcon(new ImageIcon(getClass().getResource("imagenes/arma4.png")));
                            }
                        }

                    }

                    @Override
                    public void mouseExited(MouseEvent e) {
                        if (btnCentro.clickeado == false) {
                            btnCentro.boton.setIcon(null);
                        }
                        if (btnIzq.clickeado == false) {
                            btnIzq.boton.setIcon(null);
                        }
                        if (btnDer.clickeado == false) {
                            btnDer.boton.setIcon(null);
                        }
                        if (btnArriba.clickeado == false) {
                            btnArriba.boton.setIcon(null);
                        }
                    }
                };
                if (btnIzq.Ocupado) {
                    btnCentrones.remove(cont_btns - 1);
                    btnCentrones.add(cont_btns - 1, btnIzq);
                    panel.add(btnCentrones.get(cont_btns - 1).boton);
                }
                btnCentro.boton.addMouseListener(ml);
                btnCentrones.remove(cont_btns);
                btnCentrones.add(cont_btns, btnCentro);
                panel.add(btnCentrones.get(cont_btns).boton);
                cont_btns++;
            }
        }
        int m = 0;
        for (Boton botns : btnCentrones) {
            System.out.println(botns.Arriba + " " + botns.Izq + " " + botns.Der + " " + m);
            m++;
        }
        this.setDefaultCloseOperation(EXIT_ON_CLOSE);
        this.setSize(800, 700);
        this.setVisible(true);
    }

    public JPanel obtenerPanel() {
        return panel;
    }

    public static void main(String[] args) {
        new Botones();
    }
}
